﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace TimedText.Formatting
{
    sealed class Unicode
    {
        private Unicode() { }

        public static char[] Whitespace =
        {
            ' ',
        };
        
        public static char[] VisibleBreakChar =
        {
            '-',
            '\u007C',
            '\u00AD',
            '\u058A',
            '\u0964',
            '\u0965',
            '\u0E5A',
            '\u0E5B',
            '\u0F0B',
            '\u0F34',
            '\u0F7F',
            '\u0F85',
            '\u0FBE',
            '\u0FBF',
            '\u104A',
            '\u104B',
            '\u1361',
            '\u16EB',
            '\u16EC',
            '\u16ED',
            '\u17D4',
            '\u17D5',
            '\u17D8',
            '\u17DA',
            '\u1802',
            '\u1803',
            '\u1804',
            '\u1805',
            '\u1808',
            '\u1809',
            '\u1A1E',
            '\u2000',
            '\u2001',
            '\u2002',
            '\u2010',
            '\u2012',
            '\u2013',
            '\u2027',
            '\u2056',
            '\u2058',
            '\u2059',
            '\u205A',
            '\u205B',
            '\u205D',
            '\u205E',
            '\u205F',
            '\u2CF9',
            '\u2CFA',
            '\u2CFB',
            '\u2CFC',
            '\u2CFE',
            '\u2CFF',
            '\u2E0E',
            '\u2E0F',
            '\u2E10',
            '\u2E11',
            '\u2E12',
            '\u2E13',
            '\u2E14',
            '\u2E15',
            '\u2E17',
            /// KHAROSHTHI punctuation not supported
            /*
            '\u10100',
            '\u10101',
            '\u10102',
            '\u1039F',
            '\u10A50',
            '\u10A51',
            '\u10A52',
            '\u10A53',
            '\u10A54',
            '\u10A55',
            '\u10A56',
            '\u10A57',
            */
        };
        
        #region Break Opportunities
        /// <summary>
        /// These characters all provide a break opportunity in Unicode.
        /// </summary>
        public static char[] BreakOpportunities =
        {
            ' ',
            '-',
            '\u0009',
            '\u007C',
            '\u00AD',
            '\u058A',
            '\u0964',
            '\u0965',
            '\u0E5A',
            '\u0E5B',
            '\u0F0B',
            '\u0F34',
            '\u0F7F',
            '\u0F85',
            '\u0FBE',
            '\u0FBF',
            '\u104A',
            '\u104B',
            '\u1361',
            '\u1680',
            '\u16EB',
            '\u16EC',
            '\u16ED',
            '\u17D4',
            '\u17D5',
            '\u17D8',
            '\u17DA',
            '\u1802',
            '\u1803',
            '\u1804',
            '\u1805',
            '\u1808',
            '\u1809',
            '\u1A1E',
            '\u2000',
            '\u2001',
            '\u2002',
            '\u2003',
            '\u2004',
            '\u2005',
            '\u2006',
            '\u2008',
            '\u2009',
            '\u200A',
            '\u2010',
            '\u2012',
            '\u2013',
            '\u2027',
            '\u2056',
            '\u2058',
            '\u2059',
            '\u205A',
            '\u205B',
            '\u205D',
            '\u205E',
            '\u205F',
            '\u2CF9',
            '\u2CFA',
            '\u2CFB',
            '\u2CFC',
            '\u2CFE',
            '\u2CFF',
            '\u2E0E',
            '\u2E0F',
            '\u2E10',
            '\u2E11',
            '\u2E12',
            '\u2E13',
            '\u2E14',
            '\u2E15',
            '\u2E17',
            /// KHAROSHTHI punctuation not supported
            /*
            '\u10100',
            '\u10101',
            '\u10102',
            '\u1039F',
            '\u10A50',
            '\u10A51',
            '\u10A52',
            '\u10A53',
            '\u10A54',
            '\u10A55',
            '\u10A56',
            '\u10A57',
            */
        };
        #endregion
    }
}
